def get_sum(num):
    s=0
    for i in range(1,num+1):
        s+=i
    print(s)
    return s

# get_sum(10)
# get_sum(100)

def handsome(name='miss-tree',age=30):
    print('祝'+name,'天天快乐')
    print(str(age)+'岁 生日快乐')

# handsome()
# handsome('中国',80)
# handsome(18) # 默认传给了name   TypeError: can only concatenate str (not "int") to str
# 函数只有一行代码
def cale(a,b):
    return a+b

# 使用匿名函数等价上面的代码
s=lambda a,b:a+b
# print(cale(10,20))
# print(s(10,20))

def all(num):
    if num<=1:
        return 1
    else:
        return num*all(num-1)
print(all(6))

import random
# 随机生成一个6位的验证码，包含数字和字母
def random_num():
    return str(random.randint(0,9)) # 数字
def random_upper():
    return chr(random.randint(65,90)) # 大写字母
def random_lower():
    return chr(random.randint(97,122)) # 小写字母

# 随机生成一个6位的验证码，包含数字和字母
def random_verify_code(n=6):
    lt = []
    for i in range(n):
        which=random.randint(1,3) # 随机生成1,2,3
        if which==1:
            lt.append(random_num())
        elif which==2:
            lt.append(random_upper())
        else:
            lt.append(random_lower())
    return ''.join(lt) # 将列表转换为字符串
print(random_verify_code(4))



import hashlib
# 生成md5摘要
m=hashlib.md5()
m.update('hello'.encode('utf-8')) # 加密
print('1111----',m.hexdigest()) # 16进制
# 解决MD5的撞库问题
# 1. 加盐：在密码的前面或者后面添加一些随机的字符串，然后再进行加密
mm=hashlib.md5(b'qweqrerwtqwe34564q65w4e5qw')
mm.update('hello'.encode('utf-8')) # 加密
print('22222',mm.hexdigest())



